[英]Type safety of TypeScript Generic
我不確定是否做錯了,還是設計使然...
在我班上
class List<T> { ... }
我有辦法
public Add(value: T): void { ... }
我創建列表的一個實例
const fooList: List<foo> = new List<foo>();
但現在我仍然可以
fooList.Add(new bar());
foo和bar是不相關的類型。 這不會觸發任何編譯器警告,對此我有點推遲。
我做錯了嗎,還是按預期進行?
我做錯了嗎,還是按預期進行?
如果類型兼容,則將被允許,例如
class List<T> {
add(val: T) { }
}
class Animal { name: string; }
class Cat extends Animal { meow() { } }
const animals = new List<Animal>();
animals.add(new Animal()); // Okay
animals.add(new Cat()); // Okay
const cats = new List<Cat>();
cats.add(new Animal()); // Error
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.