Ответ 1
Все, что вам нужно сделать, это определить ваш result
как массив строк, например:
const result : string[] = [];
Код:
const foo = (foo: string) => {
const result = []
result.push(foo)
}
Я получаю следующую ошибку TS:
[ts] Аргумент типа 'string' не присваивается параметру типа 'never'.
Что я делаю неправильно? Это ошибка?
Все, что вам нужно сделать, это определить ваш result
как массив строк, например:
const result : string[] = [];
Другой способ это:
const result = [] as any;
Вам нужно ввести result
в массив строки const result: string[] = [];
,
Кажется, это недавняя регрессия или какое-то странное поведение в машинописи. Если у вас есть код:
const result = []
Обычно это воспринимается так, как будто вы написали:
const result:any[] = []
однако, если в вашем файле tsconfig есть оба значения noImplicitAny
FALSE, и strictNullChecks
TRUE, оно будет трактоваться как:
const result:never[] = []
Такое поведение не поддается никакой логике, ИМХО. Включение нулевых проверок изменяет типы записей массива А затем включение noImplicitAny
фактически восстанавливает использование any
без каких-либо предупреждений??
Если у вас действительно есть массив any
, вам не нужно указывать его с помощью дополнительного кода.