undefined和void的区别
void无任何类型,当一个函数无返回值的时候,返回值的类型就是void(和C里面声明一个无返回值的函数类似),当声明一个void类型的变量的时候,它可以被赋值为null和undefined. 在 strictNullChecks = true 的时候行为不一样
undefined在TS里面也是一种类型,undefined在作为函数返回值类型的时候IDE会报错,提示函数在无返回值的情况下,类型只能为void和any
typeof的作用
获取变量类型
12 let b: number = 1;let a: typeof b = 2;用作类型保护,当表达式为typeof v === “typename”和 typeof v !== “typename”且”typename”为 “number”, “string”, “boolean”或”symbol”的时候,这会被识别为类型保护
如何声明 getProperty,以便能检查出第八行将会出现的运行错误。
|
|
|
|
Typescript中如何实现Mixin
方式1:
1234567 function applyMixins(derivedCtor: any, baseCtors: any[]) {baseCtors.forEach(baseCtor => {Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {derivedCtor.prototype[name] = baseCtor.prototype[name];});});}方式2:
123456789101112 //混合构造函数类型type Constructor<T> = new (...args: any[]) => T;function Tagged<T extends Constructor<{}>>(Base: T) {return class extends Base {_tag: string;constructor(...args: any[]) {super(...args);this._tag = "";}}}
Typescript中import xx = require(‘xxx’) 和 import ‘xxx’ 和 import xx from ‘xxx’的区别
import xx from 'xxx'
是ES6的模块系统,用来导入export default
或者export
导出的函数或者对象
import xx = require('xxx')
是用来兼容CommonJs写法的模块,通常是用module.exports = xxx
和exports.xx = xx
导出的模块
import 'xxx'
是动态导入表达式,动态的import表达式是一个新特性,它属于ECMAScript的一部分,允许用户在程序的任何位置异步地请求某个模块。
Typescript怎么引入图片不报错,列如 import ‘./p.png’
|
|
Typescript中既能当作类型,又能当作值的参数有哪些?
class, undefined, null, enum