Проект машинописного текста stackblitz не знает BigInt - PullRequest
1 голос
/ 06 мая 2020

Когда вы создаете проект машинописного текста на Stackblitz , выясняется, что существует проблема с BigInt

enter image description here

const val = BigInt(10);

Не знает BigInt. Хотя код работает нормально, я все же хочу, чтобы ошибка go исчезла :)

Итак, в приведенном выше случае я могу добавить следующее

declare function BigInt(inp: number | string);

Это работает, ошибка исчезла . Но когда я добавляю больше кода, например,

declare function BigInt(inp: number | string);

function convert(inp: string): BigInt {
    return BigInt(inp);
}

const val = BigInt(10);

declare вверху недостаточно

enter image description here

Это жалуется, что BigInt ссылается на значение и используется как тип.

Я больше не уверен, что я могу сделать, чтобы это исправить. Есть предложения?

1 Ответ

1 голос
/ 06 мая 2020

BigInt не является частью машинописного текста, он является частью javascript некоторых браузеров, но Safari, например, не поддерживает его, это означает, что код без полифилла там не будет работать.

Чтобы правильно определить его, вам необходимо объявить его интерфейс, его переменную и его конструктор.


declare interface BigInt {
  // here all magic you want to declare
  test: number
};

declare var BigInt: BigIntConstructor;

declare interface BigIntConstructor {
    new(value?: any): BigInt;
    (value?: any): BigInt;
    readonly prototype: BigInt;
};



function convert(inp: string): BigInt {
    return BigInt(inp);
}

const val = BigInt(10).test; // an example.
...