javascript - Är detta en typescript-funktion?


Jag läste källkoden för vue-next och stötte på en rad som jag hade lite problem med. Jag antar att det beror på att jag är ny på TypeScript.

Är detta en funktion? Vad gör den?

const isComment = (node: Node): node is Comment =>
  node.nodeType === DOMNodeTypes.COMMENT

Svar #1

Ja. Syntaxen node is Comment används för att förmedla att funktionens syfte är att kontrollera om den parameter som skickats in är av en specifik typ, "Comment" i det här fallet.

Svar #2

node är Comment är ett typ-predikat, där node måste vara namnet på en parameter från den aktuella funktionssignaturen. Varje gång isComment anropas, snävar Typescript typen Node till Comment om parametern är kompatibel med typen Node.