Как предотвратить вывод обобщенных аргументов типа с помощью TypeScript? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть API / функция, предназначенная для использования только с аргументами универсального типа (она задает форму аргумента на основе универсального параметра).Я хочу предотвратить вызов API без универсального параметра (таким образом, выводя тип из аргументов), потому что это противоречит цели моей функции и вводит в заблуждение пользователей API.Я бы предпочел, чтобы компилятор просто принудил, чтобы аргумент универсального типа был всегда обязательным.Например:

function foo<T>(arg: Config<T>) { ... } 

Как я могу гарантировать, что вызывающий всегда указывает аргумент типа T?т.е. foo<Bar>({ ...})

1 Ответ

0 голосов
/ 02 марта 2019

Похоже, это еще не функциональность.Это все, что документы говорят об обобщениях и выводах:

function identity<T>(arg: T): T { return arg; }
let output = identity<string>("myString");  // type of output will be 'string'
let output = identity("myString");  // type of output will be 'string'

Обратите внимание, что нам не нужно явно передавать тип в угловых скобках (<>);компилятор только что посмотрел на значение «myString» и установил T в его тип.

И это в основном все ... Нет подсказки о том, как написать это так, что identity("myString") выдает ошибку, а identity<string>("myString") нет.

...