Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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_Intellisense_Typescript Typings - Fatal编程技术网

Typescript 如何使用不完整类型

Typescript 如何使用不完整类型,typescript,intellisense,typescript-typings,Typescript,Intellisense,Typescript Typings,如果不创建新的接口/类型,也不使类型定义中的所有字段都是可选的,我可以引用一个类型而不包括它的所有必需字段吗 下面是一个问题示例: interface Test { one: string; two: string; } _.findWhere<Test, Test>(TestCollection, { one: 'name' }); 我想使用T作为properties参数的类型,因为它已经具有我想要的类型信息,但尝试这样做会导致此typescript错误:

如果不创建新的接口/类型,也不使类型定义中的所有字段都是可选的,我可以引用一个类型而不包括它的所有必需字段吗

下面是一个问题示例:

interface Test {
    one: string;
    two: string;
}
_.findWhere<Test, Test>(TestCollection, {
    one: 'name'
});
我想使用
T
作为properties参数的类型,因为它已经具有我想要的类型信息,但尝试这样做会导致此typescript错误:

类型为
'{one:string;}'
的参数不能分配给的参数 键入“测试”。类型
'{one:string;}'
中缺少属性
'two'

是否有一些额外的语法允许我根据需要有效地将
one
two
字段设置为可选?如下所示:

_.findWhere<Test, Test?>(TestCollection, {
    one: 'name'
});
\u.findWhere(TestCollection{
一:“名字”
});
我希望autocomplete,当我使用错误的类型信息时,它会提醒我(如果提供了数字,则为e.x.字符串)


这种语言存在吗?在这种情况下,我必须创建一个新类型吗?是否需要将所有字段都设置为可选?

TypeScript中尚不存在此功能

根据Ryan Cavanaugh分享的帖子,最新的消息是该功能已经添加,并将在不久的将来在未来的版本中发布(
2.2.x
?)

从图中可以看出:

// Example from initial report
interface Foo {
    simpleMember: number;
    optionalMember?: string;
    objectMember: X; // Where X is a inline object type, interface, or other object-like type 
}

// This:
var foo: Partial<Foo>;
// Is equivalent to:
var foo: {simpleMember?: number, optionalMember?: string, objectMember?: X};

// Partial<T> in that PR is defined as this:
// Make all properties in T optional
interface Partial<T> {
    [P in keyof T]?: T[P];
}
//初始报告中的示例
接口Foo{
simpleMember:数字;
可选成员?:字符串;
objectMember:X;//其中X是内联对象类型、接口或其他类似对象的类型
}
//这:
var-foo:部分;
//相当于:
var foo:{simpleMember?:number,optionalMember?:string,objectMember?:X};
//该PR中的部分定义如下:
//将T中的所有属性设置为可选
界面部分{
[P在keyof T]?:T[P];
}
因此,通过将
MyType
转换为
Partial
,可以使类型成为不完整类型

// Example from initial report
interface Foo {
    simpleMember: number;
    optionalMember?: string;
    objectMember: X; // Where X is a inline object type, interface, or other object-like type 
}

// This:
var foo: Partial<Foo>;
// Is equivalent to:
var foo: {simpleMember?: number, optionalMember?: string, objectMember?: X};

// Partial<T> in that PR is defined as this:
// Make all properties in T optional
interface Partial<T> {
    [P in keyof T]?: T[P];
}