TypeScript имеет тип any
, который может быть выбран любым произвольным типом TO или FROM. Я отлит из переменного типа any
переменного типа MyArbitraryType
как вПочему я не могу отбрасывать из любого [] в MyType [] в TypeScript?
var myThing: MyArbitraryType;
var anyThing: any;
...
myThing = anyThing;//implicit cast from 'any' to 'MyArbitraryType'
//or
myThing = <MyArbitraryType>anyThing;//explicit cast from 'any' to 'MyArbitraryType'
Но я получаю сообщение об ошибке при попытке отлита из any[]
к MyArbitraryType[]
как в
var myThings: MyArbitraryType[];
var anyThings: any[];
...
myThings = anyThings;//implicit cast from 'any[]' to 'MyArbitraryType[]'
//or
myThings = <MyArbitraryType[]>anyThings;//explicit cast from 'any[]' to 'MyArbitraryType[]'
Однако Я могу это сделать, если я использую any
как средний человек, как в
myThings = <MyArbitraryType[]><any>anyThings;
который я мог бы просто использовать как есть, но чувствую s kinda sloppy. Есть ли причина, по которой any
может быть отнесен к любому типу, но any[]
не может быть отнесен к любому массиву и из любого массива? Является ли это просто надзором в TypeScript до сих пор? Или есть какой-то другой синтаксис, о котором я не знаю?
Почему вы говорите, что это не работает? Согласно игровой площадке он делает: http://bit.ly/1cQDpA5 (примечание: я скопировал ваш код выше и добавил класс, определяющий MyArbitraryType) – Brocco
Вы правы; кажется, что это не была собственно ошибка компиляции машинописного текста, поскольку речь идет о самом компиляторе машинописного текста, а скорее об ошибке, генерируемой только Resharper. Виноват. – Jargon