5
我寫了獲取字符串數組,應該將它轉換成一件T數組的函數:返回使用Array.map(打字稿)的通用陣列
interface Fooable {
foo: string;
}
function simplifiedExample<T extends Fooable>(bars: string[]): T[] {
return bars.map(bar => {
return {
foo: bar
}
})
}
但這個詞「吧」在第一線的功能用紅線標註,說:
TS2322:類型'{foo:string;} []'不能分配給'T []'類型。鍵入'{foo:string}'不可分配給'T'類型。
我該如何使它工作?
我看到的大多數例子都是使用鑄造而不是「as」,例如'返回 {foo:bar};'而不是'return {foo:bar}作爲T;'是否有區別?如果是這樣,是否有充分的理由去用'as'而不是cast?或者他們只是兩種方式來做同樣的事情? –
@TJCrowder來自[類型斷言](https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions):「這兩個樣本是等價的。使用一個在另一個大多是一個首選項的選擇;但是,當通過JSX使用TypeScript時,只允許使用as-style聲明「。 –
謝謝!我曾經踢過,但找不到它。因此'as'語法更加靈活(無論您是否使用JSX都可以使用),而如果您使用JSX,則無法使用強制轉換語法。 –