You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// index.ts(6,5): error TS2322: Type '{ name: string; }' is not assignable to type 'Person'.
@@ -46,18 +46,18 @@ let xcatliu: Person = {
46
46
47
47
```ts
48
48
interfacePerson {
49
-
name:string;
50
-
age:number;
49
+
name:string;
50
+
age:number;
51
51
}
52
52
53
-
letxcatliu:Person= {
54
-
name: 'Xcat Liu',
55
-
age: 25,
56
-
website: 'http://xcatliu.com',
53
+
lettom:Person= {
54
+
name: 'Tom',
55
+
age: 25,
56
+
gender: 'male'
57
57
};
58
58
59
-
// index.ts(9,3): error TS2322: Type '{ name: string; age: number; website: string; }' is not assignable to type 'Person'.
60
-
// Object literal may only specify known properties, and 'website' does not exist in type 'Person'.
59
+
// index.ts(9,5): error TS2322: Type '{ name: string; age: number; gender: string; }' is not assignable to type 'Person'.
60
+
// Object literal may only specify known properties, and 'gender' does not exist in type 'Person'.
61
61
```
62
62
63
63
可见,**赋值的时候,变量的形状必须和接口的形状保持一致**。
@@ -68,24 +68,24 @@ let xcatliu: Person = {
68
68
69
69
```ts
70
70
interfacePerson {
71
-
name:string;
72
-
age?:number;
71
+
name:string;
72
+
age?:number;
73
73
}
74
74
75
-
letxcatliu:Person= {
76
-
name: 'Xcat Liu',
75
+
lettom:Person= {
76
+
name: 'Tom'
77
77
};
78
78
```
79
79
80
80
```ts
81
81
interfacePerson {
82
-
name:string;
83
-
age?:number;
82
+
name:string;
83
+
age?:number;
84
84
}
85
85
86
-
letxcatliu:Person= {
87
-
name: 'Xcat Liu',
88
-
age: 25,
86
+
lettom:Person= {
87
+
name: 'Tom',
88
+
age: 25
89
89
};
90
90
```
91
91
@@ -95,18 +95,18 @@ let xcatliu: Person = {
95
95
96
96
```ts
97
97
interfacePerson {
98
-
name:string;
99
-
age?:number;
98
+
name:string;
99
+
age?:number;
100
100
}
101
101
102
-
letxcatliu:Person= {
103
-
name: 'Xcat Liu',
104
-
age: 25,
105
-
website: 'http://xcatliu.com',
102
+
lettom:Person= {
103
+
name: 'Tom',
104
+
age: 25,
105
+
gender: 'male'
106
106
};
107
107
108
-
// examples/playground/index.ts(9,3): error TS2322: Type '{ name: string; age: number; website: string; }' is not assignable to type 'Person'.
109
-
// Object literal may only specify known properties, and 'website' does not exist in type 'Person'.
108
+
// examples/playground/index.ts(9,5): error TS2322: Type '{ name: string; age: number; gender: string; }' is not assignable to type 'Person'.
109
+
// Object literal may only specify known properties, and 'gender' does not exist in type 'Person'.
110
110
```
111
111
112
112
## 任意属性
@@ -115,14 +115,14 @@ let xcatliu: Person = {
115
115
116
116
```ts
117
117
interfacePerson {
118
-
name:string;
119
-
age?:number;
120
-
[propName:string]:any;
118
+
name:string;
119
+
age?:number;
120
+
[propName:string]:any;
121
121
}
122
122
123
-
letxcatliu:Person= {
124
-
name: 'Xcat Liu',
125
-
website: 'http://xcatliu.com',
123
+
lettom:Person= {
124
+
name: 'Tom',
125
+
gender: 'male'
126
126
};
127
127
```
128
128
@@ -132,78 +132,78 @@ let xcatliu: Person = {
132
132
133
133
```ts
134
134
interfacePerson {
135
-
name:string;
136
-
age?:number;
137
-
[propName:string]:string;
135
+
name:string;
136
+
age?:number;
137
+
[propName:string]:string;
138
138
}
139
139
140
-
letxcatliu:Person= {
141
-
name: 'Xcat Liu',
142
-
age: 25,
143
-
website: 'http://xcatliu.com',
140
+
lettom:Person= {
141
+
name: 'Tom',
142
+
age: 25,
143
+
gender: 'male'
144
144
};
145
145
146
-
// index.ts(3,3): error TS2411: Property 'age' of type 'number' is not assignable to string index type 'string'.
147
-
// index.ts(7,5): error TS2322: Type '{ [x: string]: string | number; name: string; age: number; website: string; }' is not assignable to type 'Person'.
146
+
// index.ts(3,5): error TS2411: Property 'age' of type 'number' is not assignable to string index type 'string'.
147
+
// index.ts(7,5): error TS2322: Type '{ [x: string]: string | number; name: string; age: number; gender: string; }' is not assignable to type 'Person'.
148
148
// Index signatures are incompatible.
149
149
// Type 'string | number' is not assignable to type 'string'.
150
150
// Type 'number' is not assignable to type 'string'.
0 commit comments