我试图理解之间的差异resolve(thenable)和resolve('non-thenable-object').
在下面的示例中,使用promise而不是thenable因为promise也thenable可以更容易理解.
resolve(promise)let resolvePromise = new Promise(resolve => {
let resolvedPromise = Promise.resolve()
resolve(resolvedPromise)
})
resolvePromise.then(() => {
console.log('resolvePromise resolved')
})
let resolvedPromiseThen = Promise.resolve().then(res => {
console.log('promise1')
})
resolvedPromiseThen
.then(() => {
console.log('promise2')
})
.then(() => {
console.log('promise3')
})Run Code Online (Sandbox Code Playgroud)
结果:
resolve('non-thenable-object')let resolvePromise = new Promise(resolve => {
resolve('non-thenable-object')
})
resolvePromise.then(() => {
console.log('resolvePromise resolved')
})
let resolvedPromiseThen = Promise.resolve().then(res => {
console.log('promise1')
}) …Run Code Online (Sandbox Code Playgroud)请查看下面的GIF:
我正在使用Visual Studio Code。通过按Enter和Ctrl+ Shift+ Enter。我可以在下一行自动缩进。
因此,我猜想有一种更方便的方法或程序包,只需按一下即可完成Enter。
我正在使用打字稿并遇到了一些问题。最简单的演示是:
type g = 1 & 2 // never
type h = ((x: 1) => 0) & ((x: 2) => 0) // why h not never
type i = ((x: 1 & 2) => 0)// why x not never
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 typeh不是,而type 中的neverparam不是xinever
type e = (((x: 1) => 0) & ((x: 2) => 0)) extends (x: infer L) => 0 ? L : never; // why e is 2 not never or 1? …Run Code Online (Sandbox Code Playgroud) 我已经在下面的代码上苦苦挣扎了几个小时。不明白为什么e4不是?stringString
type PropConstructor4<T = any> = { new(...args: any[]): (T & object) } | { (): T }
type e4 = StringConstructor extends PropConstructor4<infer R> ? R : false // why string not String ???
Run Code Online (Sandbox Code Playgroud)
我在下面进行了测试,我想我可以理解。
type a4 = StringConstructor extends { new(...args: any[]): (infer R & object) } ? R : false // String
type b4 = StringConstructor extends { (): ( String) } ? true : false // true
type c4 = StringConstructor extends …Run Code Online (Sandbox Code Playgroud)