Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 是否可以设置默认的泛型类型?_Typescript - Fatal编程技术网

Typescript 是否可以设置默认的泛型类型?

Typescript 是否可以设置默认的泛型类型?,typescript,Typescript,是否可以根据另一个参数动态限制参数的类型 type Foo = { bar: string; baz: number; } let o: Foo; function setProperty(key: keyof Foo, value: Foo[keyof Foo]) { o[key] = value; } setProperty("bar", 55); // shouldn't be allowed setProperty("bar", "55"); // allo

是否可以根据另一个参数动态限制参数的类型

type Foo = {
    bar: string;
    baz: number;
}

let o: Foo;

function setProperty(key: keyof Foo, value: Foo[keyof Foo]) {
    o[key] = value;
}

setProperty("bar", 55); // shouldn't be allowed
setProperty("bar", "55"); // allowed
与泛型一起使用:

type Foo = {
    bar: string;
    baz: number;
}

let o: Foo;    

function setProperty<P extends keyof Foo> (key: P, value: Foo[P]) {
    o[key] = value;
}

setProperty("bar", 55); // Throws error
setProperty("bar", "55"); // allowed
类型Foo={
酒吧:字符串;
baz:数字;
}
让o:Foo;
函数setProperty(键:P,值:Foo[P]){
o[键]=值;
}
setProperty(“bar”,55);//抛出错误
setProperty(“bar”,“55”);//允许

为什么不使用泛型?如果可以使用泛型,也可以。我只是不想从消费者那里做
setProperty