Slide 64
Slide 64 text
64
// with --isolatedDeclarations
// a.ts --isolatedDeclarationsが、ReturnTypeを明示------------
export function returnPromise(): Promise { // 型注釈
return new Promise((resolve, reject) => {
setTimeout(() => resolve("data"), 1000);
});
}
// b.ts ----------------------------------------------------
import { returnPromise } from “a”; // returnPromiseの型推論は不要
returnPromise(); // ❌
returnPromise() // ✅
.then(data => console.log(data))
.catch(err => console.error(err));
JsFunctionDeclaration {
...
return_type_annotation: TsReturnTypeAnnotation {
ty: TsReferenceType {
name: JsReferenceIdentifier {
value_token: IDENT@26..33 "Promise",
},
type_arguments: TsTypeArguments {
ts_type_argument_list: TsTypeArgumentList [
TsStringType {
string_token: STRING_KW@34..40 "string",
},
],
...