84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
In line 60359 of this type definition file, there is the following statement:
type ActivatedEventHandler = ( ev: Windows.ApplicationModel.Activation.IActivatedEventArgs & WinRTEvent ) => void;
In this context, what does the & symbol mean?
&
example:
type dog = {age: number, woof: Function}; type cat = {age: number, meow: Function}; // 类型weird是cat和dog的交集 // 它需要具有它们的所有属性的组合 type weird = dog & cat; const weirdAnimal: weird = {age: 2, woof: () => {'woof'}, meow: () => {'meow'}} interface extaprop { color: string } type catDog = weird & extaprop; // 类型现在还添加了color属性 const weirdAnimal2: catDog = {age: 2, woof: () => {'woof'}, meow: () => {'meow'}, color: 'red'} // 这与联合类型不同 // 下面的类型表示猫或狗 type dogOrCat = dog | cat;
&represents theintersectiontype in the type position.
https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types
Quoted from the above document:
interface ErrorHandling { success: boolean; error?: { message: string }; } interface ArtworksData { artworks: { title: string }[]; } interface ArtistsData { artists: { name: string }[]; } // 这些接口被组合在一起,以具有 // 一致的错误处理和它们自己的数据。 type ArtworksResponse = ArtworksData & ErrorHandling; type ArtistsResponse = ArtistsData & ErrorHandling; const handleArtistsResponse = (response: ArtistsResponse) => { if (response.error) { console.error(response.error.message); return; } console.log(response.artists); };
Intersection types in Typescript
example:
&
represents theintersectiontype in the type position.More TypeScript documentation on intersection types:
https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types
Quoted from the above document: