我正在尝试学习打字稿和angularjs(因此我是JavaScript的菜鸟)
通过angularjs教程,我看到他们做了这样的事情:
在普通的javascript中:
//for full example, see the "Wire up a backend" project.js example
//on the main page of http://angularjs.org
function CreateCtrl($scope, $location, Project){
//do stuff
}
更重要的是,这些参数可以按任何顺序排列(或根本不按顺序排列),而Project实际上是用户定义的变量/类型。angularjs框架能够将参数映射到实际对象。
那么现在到Typescript,我该如何重新创建这种类型的功能?我实际上想以某种方式描述angularjs的行为,以便将其包装在打字稿中(强烈键入此灵活的属性注入)
有任何想法吗?
在“绝对类型”上有一个AngularJS类型定义,可让您使用TypeScript中的Angular。
如果我正在为这样的现有函数创建一个定义(在没有命名参数的情况下),那么我可能会以特定的顺序定义它们(即使我知道它们 可以
在纯JavaScript中以不同的顺序传递)或创建一组与我想公开的可能性相匹配的函数重载,如下所示:
interface Example {
($scope: bool, $location: string, Project: number): void;
($location: string, $scope: bool, Project: number): void;
(Project: number, $scope: bool, $location: string): void;
}
declare var example: Example;
当我尝试调用时,example(
我会通过三个选项获得智能感知;如果不使用这些组合之一,则会收到编译器警告。
在JavaScript中,命名参数通常是用一个对象创建的,因此,如果我正在编写一个可以以这种方式接受参数的新方法,我会这样做。
interface ExampleArguments {
scope: bool;
location: string;
project: number;
}
var example = function (exampleArguments: ExampleArguments) {
};
example({ scope: true, project: 4, location: 'hi' });
它是在TypeScript中静态键入和检查的。
问题内容: 我在这里找到了解决方案:Webpack和Typescript图像导入 但我为此得到错误: 我想我需要以某种方式强制导入,但无法弄清楚如何。我在React中做到这一点。我看到该属性定义为,这就是为什么会弹出错误。 这是代码: HTML: 并基于上述解决方案进行定义: tsconfig: 问题答案: 摆脱该错误的一种方法是通过按如下方式修改d.ts文件: 去掉 或者您可以执行以下操作: 更
我正在努力寻找 有什么不同?
问题内容: 我正在建立一个指令,该指令应该将html文件放入dom并使用angular的compile进行编译 我收到一个错误: $ templateRequest不是函数 显然我做错了,不知道是什么, 这是我的指令: 问题答案: -function 的第二个参数是element。如果您要注入,则需要在构造函数中进行注入: 我建议在处理诸如指令功能之类的工厂功能时使用功能。下面这个结构:
我正在使用ES6导入语法并导入一个第三方ES5模块,该模块导出一个未命名函数的单个导出: 因为没有默认导出,而是一个匿名函数输出,我必须像这样导入和使用: 这会产生Typescript错误: 错误TS2349:无法调用其类型缺少调用签名的表达式。类型“typeof”没有兼容的调用签名。 我想我之所以会这样是因为我没有正确键入ES5导入(没有公共键入文件)。当我认为该函数是默认导出时,我有以下定义:
问题内容: 可以说我有一个简单的angular指令,如下所示: 如何使用Typescript编写此代码并在链接函数中获得$ timeout可访问的权限?我的示例如下所示: 这可能是一个愚蠢的示例,但这是我想开始使用的原理,它是在角度链接函数中使用注入的依赖项。 问题答案: 尝试这种方式: 您现在拥有的方式可能有问题。由于未更新指令工厂,因此其构造函数将作为全局对象执行。这样,你就不会最终有一个巨大
我在TypeScript中使用命名参数时遇到问题。我知道它不支持我在TypeScript中使用它的方式。 但是我该怎么做呢? 打字稿: JavaScript: 我在看(这没有成功): 有没有办法在JavaScript中的函数调用中提供命名参数? 如何将可选的命名参数添加到 TypeScript 函数参数? 我可以在 TypeScript 中做什么,以便在 JavaScript 中使用命名参数? 我