小编gil*_*ran的帖子

我应该如何在TypeScript 2中使用@types

到目前为止,我们被用来TSD或(更好的版本吧)分型

但是现在TypeScript 2提供了新@types功能,我应该如何将当前项目转换为@types?

我有tsd.json(typings.json是一些情况)与所有依赖项,移动到TypeScript 2的步骤是什么?

什么是新的最佳做法?@types是否支持特定版本?

typescript tsd typescript-typings

48
推荐指数
2
解决办法
4万
查看次数

是否提升了ES6模块的进口?

我知道在新的ES6模块语法中,JavaScript引擎不必评估代码以了解所有导入/导出,它只会解析它并"知道"要加载的内容.

这听起来像是在吊装.ES6模块是否悬挂?如果是这样,它们会在运行代码之前加载吗?

这段代码可以吗?

import myFunc1 from 'externalModule1';

myFunc2();

if (Math.random()>0.5) {
    import myFunc2 from 'externalModule2';
}
Run Code Online (Sandbox Code Playgroud)

javascript hoisting ecmascript-6 es6-modules

37
推荐指数
2
解决办法
1万
查看次数

IE10 +上的AngularJS,带占位符的textarea导致"参数无效".

在IE10 +上使用angularJS,TextArea和占位符时,我得到" 无效参数 ".

这将仅在textarea节点关闭时</textarea>发生,并且当我现在关闭textarea时不会发生.

这将引发"无效参数"异常:

<div ng-app>
    <input ng-model="placeholderModel" type="text"/>
    <textarea id="message" placeholder="{{placeholderModel}}" ng-model="textareaModel"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)

这将没有问题:

<div ng-app>
    <input ng-model="placeholderModel" type="text"/>
    <textarea id="message" placeholder="{{placeholderModel}}" ng-model="textareaModel"/>
</div>
Run Code Online (Sandbox Code Playgroud)

在这里运行示例:http://jsfiddle.net/huecc/

javascript internet-explorer-10 angularjs

23
推荐指数
2
解决办法
1万
查看次数

如何使用具有构造函数参数的TypeScript类定义AngularJS工厂

我想编写一个在构造函数中获取"前缀"参数的TypeScript类,该类还需要访问LogService注入.

使用纯JavaScript,您应该这样做:

angular.module('myModule', []).factory('LogWithPrefixFactory', ['LogService', function(LogService) {
    var LogWithPrefixFactory = function(prefix) {
        this.prefix = prefix;
    }

    LogWithPrefixFactory.prototype.log = function(txt) {
        // we have access to the injected LogService
        LogService.log(this.prefix, txt);
    }

    return LogWithPrefixFactory;
}]);
Run Code Online (Sandbox Code Playgroud)

因此,当您将此工厂注入控制器时,您可以像这样多次启动它(无需注入LogService):

angular.module('myModule').controller('Ctrl', function(LogWithPrefixFactory) {
    var foo = new LogWithPrefixFactory("My PREFIX");
    var foo = new LogWithPrefixFactory("My OTHER PREFIX");
}
Run Code Online (Sandbox Code Playgroud)

您如何在TypeScript类中定义此Factory?无法在函数内定义TypeScript类...此类应该可以访问LogService,但它无法在其中一个注入中获取.

angularjs typescript

18
推荐指数
3
解决办法
3万
查看次数

Twitter关注按钮会导致有关使用dppx的控制台警告

我已经使用Twitter的说明 在我的网站上添加了一个Twitter 关注按钮但是在Chrome控制台中我看到了这个警告:

Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) 
Run Code Online (Sandbox Code Playgroud)

不知道怎么解决这个问题?

twitter twitter-follow

11
推荐指数
1
解决办法
242
查看次数

使用uglify将TypeScript Grunt转换为JavaScript

我在ts目录下有4个TypeScript文件.我可以使用typescript:base任务将它们全部编译成一个带有源映射(main.js.map)的文件(main.js).

但是,uglify在编译多个 TypeScript文件时尝试这些文件不起作用.uglifysourceMapIn用多个文件制作时,好像很困惑.

如何将具有多个文件的TypeScript项目编译为一个带有源映射的文件(返回原始ts文件)

这是grunt文件:

module.exports = function (grunt) {
    grunt.initConfig({
        uglify: {
            dist: {
                options: {
                    sourceMap: '../js/main.min.map',
                    sourceMapIn: 'main.js.map',
                    sourceMapRoot: '../ts/'
                },
                files: {
                    '../js/main.min.js': ['main.js']
                }
            }
        },
        typescript: {
            base: {
                 src: ['**/*.ts'],
                 dest: '../js/main.js',
                 options: {
                     module: 'amd',
                     sourcemap: true,
                     declaration: false
                 }
             }

        }
    });

    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-typescript');

    grunt.file.setBase('../ts');

    grunt.registerTask('default', ['typescript:base', 'uglify:dist']);
};
Run Code Online (Sandbox Code Playgroud)

谢谢!

node.js uglifyjs gruntjs typescript

10
推荐指数
1
解决办法
2909
查看次数

在IntelliJ中编译TypeScript的完整项目

我在我的项目中使用TypeScript,我有很多.ts文件,大约50个文件.我正在使用IntelliJ和一个文件观察器来保存.问题是我想在命令上编译完整的项目,看看整个项目编译是否有任何错误(有依赖关系),有没有一个好方法呢?

谢谢Gil Amran

compilation intellij-idea typescript

7
推荐指数
1
解决办法
1042
查看次数

TypeScript:函数表达式的装饰器

我正在尝试向函数表达式添加函数装饰器。装饰器适用于函数声明,但不适用于函数表达式。

装饰师

function track(val: string) {

    return function(_target: any, _key: string, descriptor: any)  {

        const originalMethod = descriptor.value;

        descriptor.value = function(...args: any[]) {
           Logger.log(val);
           originalMethod.apply(this, args);
        };

        return descriptor;
    };
Run Code Online (Sandbox Code Playgroud)

我试图注释的函数表达式:如果我尝试像这样装饰,它将不起作用:

const handleClick = @track('trackMe') (e) => { console.log(e) };
Run Code Online (Sandbox Code Playgroud)

或这个:

@trackMetric('sdf')
const handleClick = (e) => { console.log(e) };
Run Code Online (Sandbox Code Playgroud)

我有experimentalDecorators上和目标标志ES5

decorator typescript

6
推荐指数
1
解决办法
3468
查看次数

TypeScript:节点11的“正确”目标是什么?

打字稿的有target很多值,配置一样esnextes2015es6等。(很混乱)

NodeJ的当前版本(11.11.0)支持JavaScript的许多新功能。以esnextTypeScript 为目标可以吗?能行吗

如果不是,那么target在定位nodeJs 11.11.0时使用什么权利

编辑:

感谢@Seblor,我们知道它esnext非常动态,TC39可以添加合适的功能。它表示正在使用的JavaScript的下一版本(关于功能约定)

改进后的问题应该是:根据NodeJs的当前版本(11.11.0)和TypeScript的当前版本(3.3),我们可以将其esnext用作target

node.js typescript

6
推荐指数
3
解决办法
1168
查看次数

有没有办法将 Scala 案例类导出到 d.ts (TypeScript)

我想采用 Scala 案例类并将其导出到 d.ts(TypeScript 定义)文件中。是否可以?如果是这样,最好的方法是什么?

谢谢

scala case-class typescript

5
推荐指数
0
解决办法
803
查看次数

转发grunt连接到不同的URL

我正在使用grunt连接livereload用于我的开发环境.

我希望能够调用/ server下的生产API.

要做到这一点,我需要指挥任何来电

http://localhost:9000/server

http://www.production-server.com/server

这对我有好处,因为有时我想在开发模式下对生产服务器进行测试.

这是我当前的连接配置(由Yeoman生成):

connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost',
    livereload: 35729
  },
  livereload: {
    options: {
      open: true,
      middleware: function(connect, options, middlewares) {
        return [
          connect.static('.tmp'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  },
  test: {
    options: {
      port: 9001,
      middleware: function(connect) {
        return [
          connect.static('.tmp'),
          connect.static('test'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  },
  dist: {
    options: { …
Run Code Online (Sandbox Code Playgroud)

node.js gruntjs grunt-contrib-connect

1
推荐指数
1
解决办法
2420
查看次数