类型别名
我们一直通过直接在类型注释中编写对象类型和联合类型来使用它们。 这很方便,但通常希望多次使用同一个类型并用一个名称引用它。
We've been using object types and union types by writing them directly in type annotations. This is convenient, but it's common to want to use the same type more than once and refer to it by a single name.
U53jHhVrTT21tR1RlcEaPih7AFOpXeSDAeLIuDEvSEFoc5PVznyJJ3A9eVrzgntxO1UZhmZBMp7ZtW9/VGTydRqFFBiyMXZVRwDcEjlNLEmgCe1Q+rArTdGgE5yB7qAIAxcHyT96pLARsVjQthiYZKyojybhetXzgFrZZ4281Y89jrIvE4nK7PXRe2kh2HP3Nxqwf9hdDc4r4ifyAJagL+JPg263skZXEJ1Q2ffgkpwnK6PByj31oEyi1Yt9XJJQdzjtl7QA3R6eY2PtTtwqiKNyFMuJn/zA8oA4i9+XIMw=
type Point = {
x: number;
y: number;
};
// Exactly the same as the earlier example
function printCoord(pt: Point) {
console.log("The coordinate's x value is " + pt.x);
console.log("The coordinate's y value is " + pt.y);
}
printCoord({ x: 100, y: 100 });
Uj0YOkUfHUwhlcEwQQh2n1eAelYHSG2PP3RqAR3hu1CfBwftgj/A9i06EDZw9vtdrJ94D+xI7h8nAQwL9pFEDRQsH+4oXC6hJuIgvaWOTocr6pAWPjlmM6ZpqtQpeQgUnVaQrDQpUMwys5NxYBSaPWq/B+9I9Oe9y35fUz3SA/Y6cr2+hBDYgm2Lv9hRjNpgLONnhf2k6wpSlViA2LxdmEedXg2pLo0Yb8dlfnb3mGHuB6DjI9u1tR1e9FIV2wj8n+db7hnzEUf453gYl2oVb2NVIcihNyc2xWvloPUKJB3UN98LMArrjCClh9HINMandfjpoNiwWmJJ8alg9XD0gc8FyICvg5e4BefUyg6+UpuM2ryA2bm18HCumHU16pTg4r71OTEhfjJ0Yj74jLTi8i7IOxBJ/1POEn6eSFXkbfo=
type ID = number | string;
CLpmPFQXelm6G2b64VXnLO4zhwPDP3jQPgK8g/Odc2q4CJSB8H5pCf+t3nsrllV9kM16u2Sqfbi2Lx3Zaoy9U9UjTY0CQksKcldFJ/aKO6vC2PosFXId0JFCdSmeva1WunVJFbzqrXlEQMvynMbivzjG9BxknLJgDIJ1qNp6dB1s7whnNeLDtj//U5qZokpPxrY8YeoxX44Ksuyp2o2ljtvqa2IWr7ACrCs1e5MEGYHX7R9BjxAC4osyhPhAr+2pEnO4HguuhN+r0H/+Pn1sYysUwoP/pNcFSmQWjNihII7nOMcQd+1SjbFxTYTqMxs4NHNvYPZPKB3/OhcLRIZXQL+iDw5IRWz8VeH/sW8MoUA3mkpr0AQhten5yxSclWboy2YTZ9+SS8eEZu6Cn9DGRa+zHqL1PTaKmKry+KpjKjNK3ky+rZSic2fDiUIXI+/zGyOeV0FlqlIQ94yYrviCdfJKI6MkDiHG/QmfCv6CEFGt04p2bh6LfpYYsrchTpZcyb6UU2trIDHVigKv9l9z5kMPXmyhlM8eXo8ElZs4F7TOsLBNnCMXfQeKZpfQ37ZRFA1Z/L0QWt30QEhzVmYH2qPD8X7iE1z636eIKn2SGuMeaSlv58jY5bM/bCXaVR0O6fN3B00FDX66ieBNKvkkkAXRjSByRrvuPbIqCHw2gpoND9E3CY/6MdfsNlwzmyax5WQQCX8w1dYfy+kCfrJpEZqCtGUNzJwOE2r7Taa1fUG66D3/uuQgSivSObzptUaSO/vEhWlQF/5EGMdtGdZGJ0AdWeUJh0jvV/llt/slWiWeiFNPaDOW7Pj4+t2dvvV1G0/hHI5fmHSUaUfEuctV5OaAMPGzRSPEalu1nHHifvPjqhdGdaG3cOLGgdp3LT+JowS+uDmy8yXtm4XaQ086WTU6koU1m5SzqFo4yCSz4o4=
declare function getInput(): string;
declare function sanitize(str: string): string;
type UserInputSanitizedString = string;
function sanitizeInput(str: string): UserInputSanitizedString {
return sanitize(str);
}
// Create a sanitized input
let userInput = sanitizeInput(getInput());
// Can still be re-assigned with a string though
userInput = "new input";