我试图引用使用Resig的“extend”的现有代码,但是我得到了一堆错误
------test.ts--------
错误:
Supplied parameters do not match any signature of call target
The name 'Class' does not exist in the current scope
The property 'extend' does not exist on value of type '() => void'
T
我正在努力处理其他文件中的TypeScript模块。让我解释一下
我有一个文件ModuleOne.ts,其中包含:
module Messages {
export var TestAlert: string = "It works!";
}
然后在我的app.ts中,我有:
/// <reference path="Scripts/typings/jquery/jquery.d.ts" />
/// <reference path="ModuleOne.ts" /&
我对*.d.ts感到好奇,因为我是打字新手。有人告诉我,这种文件在C++中类似于“头文件”,但只适用于JS。但是我无法将纯JS文件转换为*.d.ts文件,除非我强制将*.JS更改为*.ts。所以我有三个文件:
JS文件、TS文件和*.d.TS文件
他们之间有什么关系
如何使用*.d.ts文件?这是否意味着我可以永久删除*.ts文件
如果是这样,那么*.d.ts文件如何知道哪个JS文件正在映射到自身
如果有人能给我举个例子,那就太好了。这个“d.ts”文件用来提供关于用JavaScript编写
我正在使用Typescript开发量角器测试。可用于量角器的d.ts文件似乎已非常过时。我正在尝试更新它,以包括量角器的预期条件
总而言之,预期条件是量角器中的一组函数,它们返回一个函数,该函数返回对您的值的承诺
用法示例:
protractor.ExpectedCondtions.visibilityOf(element(by.id('button1')))();
如何告诉量角器我正在返回一个将返回特定返回类型的函数,这让我感到困惑。有人对此有经验吗?如果我理解正确,您的解决方案将取决于“s
我一直在尝试从成功函数中访问绑定。这是我的代码:
import {Page, Platform, Modal, NavController, NavParams, ViewController} from 'ionic-angular';
import {Component, Input} from 'angular2/core';
@Page({
templateUrl: 'build/pages/addModal/addModal.html',
directives: []
})
我正在尝试实现一个在堆栈溢出中找到的解决方案,但面临困难。我有一个服务和一个组件,但在实现上有些不正确
错误:TypeError:无法读取未定义的属性“next”
可能有什么问题或遗漏了什么?还缺什么吗?
同样在我的终端窗口中,我得到了这个错误,但它并没有反映在我的浏览器控制台上:错误TS1005:“=>”预期
import {Injectable} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import
比如说,我想将方法添加到NgForm(类)
这在typescript中是可能的吗
我知道:
但它只适用于接口,而不适用于类 在Angular和TypeScript中,您通常使用继承,如
export class MyForm extends NgForm {
...
}
并注册自定义类以在整个应用程序中使用,而不是原始类
bootstrap(AppComponent, [FORM_PROVIDERS, FORM_DIRECTIVES, provide(NgForm, { useC
我有一个FFI绑定,有几个地方使用了void*。我想区分一下打字稿方面的内容。我所做的是:
interface Struct1Ptr extends Buffer {};
interface Struct2Ptr extends Buffer {};
var x: Struct1Ptr;
var y: Struct2Ptr;
我想使这些类型不可分配,这样当我尝试分配x=y或y=x或使用错误的类型作为函数的参数时,就会发出错误信号。Typescript对所有内容都使用结构化类型,因此实际上必须使
下面是非常简单的代码:
"use strict";
import * as express from "express";
class Server {
public app: express.Application;
public static run(): Server {
return new Server();
}
constructor() {
this.app = express();
}
}
var
我正在尝试在typescript中为jointjs文件添加事件处理程序,但没有找到一种使用jointjs定义文件实现它的方法
private paper = new joint.dia.Paper({
el: $('#paper'),
width: 650,
height: 400,
gridSize: 20,
model: this.graph,
markAvailable:
我不熟悉angular2字体。我正在尝试实现datepicker。我尝试了很多,但要么是我在实施中弄错了,要么是那些已经过时了
我的种子项目没有@NgModule。如果您被困在NgModule上,那么不要尝试实现日期选择器,因为这是一项非常艰巨的任务。学习Angular的基础知识,从Angular cli开始,并使用ng引导,例如,它提供可重用组件,如日期选择器。如果您的项目没有app.module.ts,并且您的文件中没有NgModule,那么您的应用程序已经过时,并且不能选择使用angula
我在打字脚本中得到了一个简单的情况
我有一个模型,里面有一些字符串
比如说
let message = 'Updated user {userName}. Set new name {newName} instead of old {oldName}.'
当前,这些字段的实际值存储在this.fields属性中
我们正在进行内联替换以返回“已填充”的消息文本。使用类似于:
replaceFields(message): string {
return Object.keys(this.
我正在Visual Studio代码和Vetur扩展中使用Vue和Typescript。问题是:当我更新任何代码时,intellisense在.vue文件中工作时无法识别更改。在.ts文件中,intellisense正在工作
我使用此定义文件,以便typescript识别.vue文件扩展名:
declare module "*.vue" {
import Vue from "vue";
export default Vue;
}
范例
test.ts刚刚更改
export de
在尝试集成到我们的项目中时,我遇到了一个类型错误,可以归结为以下几点:
这将导致以下编译错误:
“number | ArrayBuffer”类型的参数不能分配给“ArrayBuffer”类型的参数。类型“number”不可分配给类型“ArrayBuffer”
据我所知,这应该是有效的代码,但我不能完全确定我是否在TS中遇到了错误,输入错误,或者错误到底是在我这边。有什么建议吗 发生这种情况是因为。这两个重载都与第二个参数的number | ArrayBuffer类型不匹配,并且编译器不理解这对重
我正在为一个typescript项目使用VisualStudio代码,其中我使用了一些第三方npm js库。其中一些不提供任何ts类型(types.d.ts文件),因此每当我使用参数或变量而不指定其类型时,vs代码的linting显示此错误:参数隐式地具有“any”类型。
而且,ts不会编译
如何防止这种情况发生?首先,要使typescript容忍参数而不声明其类型,请编辑tsconfig.json
// disable this rule:
// "strict": true,
// ena
这是我用来检查函数是否提供了body属性的方法
在TypeScript中有没有更简单的方法
httpAPI<T>(httpMethod: HttpMethod, url: string, optional?: { params?: HttpParams, body?: any, isUseCache?:boolean }): Observable<T>
{
const body: any = optional === undefined || optional
我对ES6承诺非常陌生,我想知道以下情况下的错误处理:
// Base function
private async someFunction(...): Promise<T> {
// returns Promise<T>
}
public async anotherFunction(...): Promise<T> {
try {
// stuff
return someFunction(...);
在Typescript中编码时,错误处理函数的四个参数的类型是什么
app.use((err: ??, req: ??, res: ??, next: ??) => { });
我使用的是VS代码,没有提供任何提示。我在所有四个参数下都得到了红色的摆动线
错误为“参数隐式具有'any'类型”。事实上,我对这条信息感到困惑。如果它将其视为any类型,那么这不是一个有效的选择吗?函数本身具有以下签名(取自):
因此,您可以将函数声明为ErrorRequestHandler类型的变量,也可以根
我目前正在React项目中使用Typescript,希望使用类属性来设置初始状态,但在使用未定义的值和严格的空检查时遇到了一些问题。这里是我的问题的最小重构,没有任何特定于React的代码来演示我的问题
class Component<T> {
state: T;
}
interface Foo {
bar: number | undefined
}
class Test extends Component<Foo> {
state = {
查看TestCafe的页面对象模型,我注意到所有类都标记为default,而不是典型的命名类
我想知道这背后的原因是什么,它是否有助于测试控制器的通过和浏览器操作的排队
TestCafe允许您避免显式地将测试控制器传递给方法。相反,您可以将t导入页面模型文件
我想避免像建议的那样使用默认类,但我想知道TestCafe的具体权衡。谢谢。对于TestCafe,不需要使用默认的关键字。此外,它不会影响测试通过或浏览器的操作。这只是一种从带有一个类的模块中导出/导入类的方法。如果您想编写自己的模块,可
我正在尝试用typescript编写无点的curried函数。这样做,我确实发现了一个问题。
Typescript似乎是在立即评估类型,据我所知,它不允许非常好的curry函数
让我用一个例子来说明,首先是非curried函数
const fn = (x: number): string => null
function inline <T, U>(fn: (x: T) => U, src: T[]): U[]
function inline <T, U>(
此类型检入,但在v3.1.6上失败:
function head([a]) {
return a;
}
const x: number[] = [[1], [2]].map(head)
错误计量表:
server/src/mock-resolvers/mock-data.ts(549,36): error TS2345: Argument of type '([a]: [any]) => any' is not assignable to parameter of type '(v
假设我有一段代码:
const [val$, err$] = partition(result => ...)(httpSource$)
const valid$ = val$.pipe(
tap(() => ...),
map(result => ...)
)
const error$ = err$.pipe(
tap(() => ...),
map(result => ...)
)
通过在赋值之前修改分区返回值,我可以避免创建v
我试图返回一个包含初始化对象和数字的数组
但是,我得到以下错误:
类型“number | IObj”属性“foo”上不存在属性“foo”
类型“number”上不存在
如何修复此问题?对于数组文本,默认情况下,typescript将推断数组,因此当发生解构时,每个元素都是IObj | number,第一个元素是IObj,第二个元素是数字的信息将丢失
在最近发布的3.4中,您可以使用as const让编译器推断一个只读元组(返回[foo,1]as const)
或者,您可以使用显式类型注释告诉编译
我是TypeScript新手,尝试实现一个自动生成的构建器模式,这样我就可以按照
class-Foo{
@可构建('inBar'))
公共栏='未初始化';
构造函数(){}
}
const FooBuilder=getBuilder(Foo);
const foo=new FooBuilder().inBar('My Bar').build();
考虑到我不仅是TS新手,而且已经离开JS一段时间了,写这篇文章多少有些直截了当
当然,现在传输员抱怨不知道inBar功能。我可以使用[]操作符,比
我目前正在Monorepo设置中通过VSCode扩展使用Prettier。问题是Prettier在我的api文件夹中不能完全工作。它不尊重默认的线宽,分号不会自动变为空。奇怪的是,我的www文件夹照常工作,我没有任何遗漏的更漂亮的功能
Prettier配置通过VSCode中的“用户设置”设置为全局
www-NextJS
api-阿波罗服务器
www/tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": [
我有以下类型:
selection: (InterfaceX | InterfaceY)[]
interface InterfaceX {
switch: boolean
propertyOne: number
}
interface InterfaceY {
switch: boolean
propertyTwo: number
}
选择可以是:
{switch: true, propertyOne: 1} or {switch: false, propertyTwo:
如何保持返回对象的键由传入数组设置
function f<T extends string, U = { [K in T]?: boolean }> (keys: T[]): U {
const out: U = {} as U
for (let key of keys) {
out[key] = true
}
return out
}
f(['one', 'two'])['one'] // good
f(['one', 'two'])['three'] /
我想为一个特定的类创建一个通用的参数的typescript
type Example<T> = Parameters<UserRepository[T]>[0]
或
type ClassMethod=参数[0]
键入Param=ClassMethod//,其中泛型包含“UserRepository”。
及
type ClassMethods=string
类型Params=ClassMethods
第一个示例很简单,该类嵌入在d中
type ClassMethod&
我正在尝试将一个长文件拆分为多个文件,而不影响导入的结构
我在模块b上导出了一个接口,如下所示:
export interface A {
// stuff
}
import { A } from 'module-b'
export { A }
import { A as AA } from 'module-b'
export { AA as A }
在我的“模块集合”文件中,我有以下内容:
export { A } from './module-b'
但是,我在编译时遇到以下错
我有以下代码:
type Callback = (a: string, b: string) => void
const observer: Callback = function(a: string): void {
console.log(a)
}
observer('foo')
Typescript在最后一行抱怨:
Expected 2 arguments, but got 1.(2554)
为什么TS只是在observer调用上抱怨,而不是在实现observer的第3行
我刚刚创建了一个复杂的函数,它包含3个参数:名称、类型和方法。
此函数用于在存储区中存储方法。它从第二个agument推断第三个agument的返回类型
添加方法d.ts
接口简化类型映射{
字符串:字符串;
编号:编号;
布尔型:布尔型;
}
类型globalMethodId=(
名称:string,
类型:T[],
方法:()=>SimplifiedTypeMap[T]
)=>无效;
接口方法库{
[名称:字符串]:{
类型:(SimpledTypeMap的键)[];
方法:()=>Simp
鉴于此
beforeAll(() => {
testContainer.register(Beans.CEC_LOCATION, {
useFactory: (c) => {
const contextMock = mock<ContentfulEntryContext<ContentfulLocationFields>>();
const entryMock = mock<Entry<ContentfulLoc
我最近经常和TS一起工作。我喜欢让我做字符串插值的符号。但是,我忘了使用它,所以我创建了AHK脚本来切换backtick和“for me:
'::`
`::'
~::~
"::"
很好用,但现在它在任何地方都能用,甚至在这里。我希望这个脚本只在WebStorm和VisualStudio中工作。谷歌搜索发现了IfWinActive,但它需要完整的窗口标题。在我的例子中,窗口标题变化很大,因为它还包含项目标题,例如.ts文件的路径,标题可以是
“我的酷项目[C:\path\to\file.ts]-
我在做两个项目。一个使用Flow,另一个使用Typescript。我想对两者都使用升华文本
我想为Flow项目利用与流相关的包(例如SublimeLiner流),同时为Typescript项目利用与Typescript相关的包(例如Typescript)
当我安装这两套软件包时,它们会互相碰撞(Sublime目前正在我的Flow项目中报告Typescript错误)
也许有一种方法可以使包特定于项目?或特定于扩展类型
我唯一的其他想法(不是首选)是在一个项目中使用VSCode,在另一个项目中使用S
我有一个服务,我可以注入到其他组件没有任何问题
当我尝试将该服务注入另一个服务时,我得到
Error: Nest can't resolve dependencies of the AService (?).
Please make sure that the argument BService at index [0] is available in the AService context.
我找不到任何方法将服务注入彼此。这是否不受支持,有点反模式
如果是这样的话,如何处理我希望在我的
我有这样的代码:
class A {
private readonly something: B
constructor() {
this.setup();
// another setup codes ...
}
private setup():void {
this.something = new B();
// another config codes...
}
}
但这将导致一个错误:
无法分配给“某物”,因为它是只读属性。
在下面的代码中,Action=Action的含义是什么
export type ActionReducerMap<T, V extends Action = Action> = {
[p in keyof T]: ActionReducer<T[p], V>;
};
导出类型ActionReducerMap={
[p in keyof T]:作用减速器;
};
它是一个通用参数,被约束为扩展动作(即它可以是动作或动作的任何子类),如果没有提供,它的默认值是动作
假设
几个月前有些东西坏了,此时我没有注意出了什么问题以及原因。但每次我在项目中导入自己的类型时,它们都会得到一个错误的路径
导入解析为从“@sap/ui5 types/modules/sap/m/Input”导入输入无效,我希望将其解析为从“sap/m/Input”导入输入哪个是正确的
这肯定和我的tsconfig有关。。。但我不知道要更改什么才能使其与类型定义一起工作,同时也使导入有效
tsconfig看起来是这样的:
(...)
"rootDir": "./&q
我有一个到我的firebase数据库wich pipe的查询,并订阅以在数组中获取它。我的问题是我有400多个寄存器,我只需要在一个数组中使用它们,firebase it会为每100个寄存器返回一个数组:
如何在一个数组中获得它?因为我需要它以这种方式使我的循环
这就是我现在的问题:
this.firestore.collection<User>('users').valueChanges().pipe(take(1)).subscribe(users => {
th
我试图在nest.js中实现Redis缓存和mongoose,我正在寻找一种方法
在执行find或findOne并从redis返回数据之前,首先检查redis缓存
否则执行查询,将结果保存在redis中并返回结果。
我没有按照nest.js的建议实现的原因
我也在使用Apollo服务器进行GraphQL
@Injectable()
export class MyService {
async getItem(where): Promise<ItemModel> {
标签: Typescript
react-typescriptobject-destructuringnullish-coalescing
我使用React,因此我有一个道具对象,例如:
const props: { id: number, name?: string} = { id: 1 }; // not defining the `name`
const { id, name } = props; // here the `const name` becomes undefined forever and even if I use the defaultProps pattern of React, Typescript s
我希望能够从函数的默认值推断返回值类型,并希望能提供一些想法或帮助
链接:
常量dict={
k1:{
k_child_1:1,
},
k2:{
k_child_2:2,
}
}
IDict类型=dict类型
函数getL(类型:P='k1'){/下面是一个工作示例:
常量dict={
k1:{
k_child_1:1,
},
k2:{
k_child_2:2,
}
}
IDict类型=dict类型
函数getL(类型:P):IDict[P]
函数getL():IDict['k1']
函数g
这是一个补充
假设我有一门课:
export class PizzaSize {
static readonly SMALL = new PizzaSize('SMALL', 'A small pizza');
static readonly MEDIUM = new PizzaSize('MEDIUM', 'A medium pizza');
static readonly LARGE = new PizzaSize('LARGE', 'A large pizza');
所以我做了很多阅读/搜索,但似乎无法理解这一点
我有一个typescript类,看起来像这样
import * as Shopify from 'shopify-api-node';
export default class ShopifyService {
private readonly shopify: Shopify;
constructor(
config: Shopify.IPublicShopifyConfig | Shopify.IPrivateShopifyC
类似问题:
我正在将js测试文件转换为ts文件,并使用ts jest。我知道,如果我开玩笑,我就不需要巴贝尔了。但是当我删除.babelrc文件时,当我运行测试时,会出现以下错误:
Jest encountered an unexpected token
This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
如何通过组合TypeScript声明文件和相应的JavaScript文件来生成TypeScript文件
也就是说,如何将.js+.d.ts合并到.ts
通常,我们可以通过以下方式在TypeScript中递归使用类:
class A {
b: B;
}
class B {
a: A;
}
但当我们将其与decorator和元数据一起使用时,会出现如下引用错误:
ReferenceError: Cannot access 'B' before initialization
这是一个简单的复制代码
// test.ts
const decorator = (target: any, property: any) => {};
c
标签: Typescript
react-native-reanimatedreact-native-svg
这是我的代码:
import Animated, {useAnimatedProps} from 'react-native-reanimated';
import {Path} from 'react-native-svg';
const AnimatedPath = Animated.createAnimatedComponent(Path);
但我无法在此处生成getTotalLength:
onLayout: () => {
if (ref.current
从今天开始,以下代码突然出现ts2322错误。
这在中国很有效
我没发现有什么问题,但有什么问题吗
我使用的是Visual Studio代码1.56.2
class Klass {
value?: number;
constructor(value?: number) {
this.value = value;
}
}
您没有提到这一点,但我假设您使用的是npm中发布的夜间版本typescript@next。如果是这样,您可能会看到TypeScript 4.4的一个新功能
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 825 页