代码如下
function extend<T extends object, U extends object>(first: T, second: U): T & U {
let result = {} as T & U;
for (let id in first) {
result[id] = first[id]; // 这里报错
}
for (let id in second) {
if (!result.hasOwnProperty(id)) {
result[id] = second[id]; // 这里报错
}
}
return result;
}
const x = extend({ a: 'hello' }, { b: 100 });
console.log(x.a, x.b)
报错信息如下
Type 'T[Extract<keyof T, string>]' is not assignable to type '(T & U)[Extract<keyof T, string>]'.
Type 'T' is not assignable to type 'T & U'.
Type 'object' is not assignable to type 'T & U'.
Type 'object' is not assignable to type 'T'.
'object' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'object'.
Type 'T' is not assignable to type 'U'.
'T' is assignable to the constraint of type 'U', but 'U' could be instantiated with a different subtype of constraint 'object'.
是不是这种情况不应该用 T&U 作为函数返回结果的类型?
断言一下。比如
function extend<T extends object, U extends object>(first: T, second: U): T & U {
const result = {} as T & U
for (const id in first) {
;(<T>result)[id] = first[id]
}
for (const id in second) {
if (!Object.prototype.hasOwnProperty.call(result, id)) {
;(<U>result)[id] = second[id]
}
}
return result
}
const x = extend({ a: 'hello' }, { b: 100 });
console.log(x.a, x.b)
请问这2种写法有什么区别?我VSCode运行都是可以运行的。
描述 (Description) 它将返回列表中指定位置的值。 它采用list (由逗号或空格分隔的值列表)和index (指定要返回的元素的位置的整数)作为参数。 例子 (Example) 以下示例演示了在LESS文件中使用提取函数 - <!doctype html> <head> <title>Extract Function</title> <link rel
Command/function extract in your console What’s a good way to extract: .zip, .rar, .bz2, .gz, .tar, .tbz2, .tgz, .Z, .7z, .xz, .exe, .tar.bz2, .tar.gz, .tar.xz, .arj, .cab, .chm, .deb, .dmg, .iso, .lz
英文原文:http://www.phpconcept.net/pclzip/user-guide/55 概述 本方法用于解压压缩包中的文件和目录。 用法 PclZip::extract([可选参数]) 参数 参数 支持的可选参数 PCLZIP_OPT_PATH PCLZIP_OPT_REMOVE_PATH PCLZIP_OPT_REMOVE_ALL_PATH PCLZIP_OPT_ADD_PAT
Inno Setup 是一个为 Windows 应用程序创建安装程序的工具。主要是用于在非 Windows 下使用 Wine 作为运行环境的程序。
单文件、无三方依赖、支持在线规则升级、非标准协议的 URL 关键词提取工具。 使用 <dependency> <groupId>com.ecfront</groupId> <artifactId>keyword-extract</artifactId> <version>1.4</version></dependency> // 关键词提取KeyWordExtract.Result resu