0
我试图让类型检查上设置属性上的变量类型RefBasketType型检查,设置预先定义的接口
下面的函数中的值是一个测试代码:
export class BaseTest {
__base: null;
}
export class Test1 extends BaseTest {
__test: null;
}
export class Test2 extends BaseTest {
__test2: null;
}
export type RefBasketType = {
t1?: Test1;
t2?: Test2;
};
const testRefBasket: RefBasketType = {};
function test<U, T extends {}, K extends keyof T>(
key: K, testC: U, basket: T
) {
basket[key] = testC;
}
test('t1', new Test1(), testRefBasket); // passes (ok!)
test('t1', new Test2(), testRefBasket); // no error here.(UH-OH)
test('t3', new Test1(), testRefBasket); // error (ok!)
正如你所看到的,
test('t1', new Test2(), testRefBasket); // no error here.(UH-OH)
通行证,即使它不应该有。
还有什么我应该用在打字稿上,还是甚至不可能用最新版本的打字稿?
谢谢!