functioncolor(value: string) { // this is the decorator factory returnfunction (target) { // this is the decorator // do something with 'target' and 'value'... } }
<foo requiredProp="bar" />; // ok <foorequiredProp="bar"optionalProp={0} />; // ok <foo />; // error, requiredProp is missing <foorequiredProp={0} />; // error, requiredProp should be a string <foorequiredProp="bar"unknownProp />; // error, unknownProp does not exist <foorequiredProp="bar"some-unknown-prop />; // ok, because 'some-unknown-prop' is not a valid identifier
======== Resolving module 'typescript' from 'src/app.ts'. ======== Module resolution kind is not specified, using 'NodeJs'. Loading module 'typescript' from 'node_modules' folder. File 'src/node_modules/typescript.ts' does not exist. File 'src/node_modules/typescript.tsx' does not exist. File 'src/node_modules/typescript.d.ts' does not exist. File 'src/node_modules/typescript/package.json' does not exist. File 'node_modules/typescript.ts' does not exist. File 'node_modules/typescript.tsx' does not exist. File 'node_modules/typescript.d.ts' does not exist. Found 'package.json' at 'node_modules/typescript/package.json'. 'package.json' has 'types' field './lib/typescript.d.ts' that references 'node_modules/typescript/lib/typescript.d.ts'. File 'node_modules/typescript/lib/typescript.d.ts' exist - use it as a module resolution result. ======== Module name 'typescript' was successfully resolved to 'node_modules/typescript/lib/typescript.d.ts'. ========
值得关注的事情
导入的名称和位置
1
======== Resolving module 'typescript' from 'src/app.ts'. ========
编译器遵循的策略
1
Module resolution kind is not specified, using 'NodeJs'.
从npm包加载类型
1
'package.json' has 'types' field './lib/typescript.d.ts' that references 'node_modules/typescript/lib/typescript.d.ts'.
最后结果
1
======== Module name ‘typescript’ was successfully resolved to ‘node_modules/typescript/lib/typescript.d.ts’. ========
{ "compilerOptions":{ "baseUrl":".",// This must be specified if "paths" is. "paths":{ "jquery":["node_modules/jquery/dist/jquery"]// This mapping is relative to "baseUrl" } } }