【发布时间】:2018-10-26 13:59:13
【问题描述】:
我正在尝试在 Observable 上做一个扩展方法
import { Observable } from 'rxjs/Observable';
declare module 'rxjs/Observable' {
interface Observable<T> {
customFilter<T>(this: Observable<T>): Observable<T>;
}
}
function customFilter<T>(this: Observable<T>) {
return this;
}
Observable.prototype.customFilter = customFilter;
但是我总是遇到编译错误
ERROR in src/app/utils/observable.extensions.ts(13,1): error TS2693: 'Observable' only refers to a type, but is being used as a value here.
这是我的 tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es6",
"types": [],
"paths": {
"@angular/*": [
"../node_modules/@angular/*"
]
}
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
有什么想法吗?
【问题讨论】:
-
您正在导入
Observable,一个类型,并修改它(暗示它是一个值)。如果我没记错的话,这是无法做到的。
标签: typescript angular6 extension-methods