标签: coffeescript

咖啡脚本切换不间断

是否有可能在没有中断的情况下使用coffeescript中的开关?

switch code                      switch (code) {
    when 37 then                     case 37: break;
    when 38 then           ->        case 38: break;
    when 39 then                     case 39: break;
    when 40                          case 40:
        ...                              ...
Run Code Online (Sandbox Code Playgroud)

我认为这会起作用但失败了:

switch code
    when 37 then continue
    when 38 then continue  ->    not valid
    when 39 then continue
    when 40
        ...
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript

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

Coffeescript Static Analysis/Static Typechecking - Roadblocks

我认为Coffeescript是一种很棒的语言!我正在寻找一些将静态分析添加到Coffeescript的项目/问题/功能.然而,经过一些搜索,我发现Coffeescript 常见问题解答和此页面表明静态分析可能不可行.

我想知道如果在Coffeescript中实现静态分析/静态类型检查存在根本问题,那么编译器中是否存在这种类型的东西?

此外,对于非平凡的检查,这是不可能的,但可能仅适用于直接分析?当我说直截了当时,我的意思是检查一些微不足道的东西,比如,用户是否使用相同的名称(在类中)或顶层(或者在相关的.coffee文件集合中的顶层)定义了两次函数.

如果有人能指出一些示例,说明为什么实施静态分析/类型检查不简单/可能/值得花时间,我将不胜感激?

非常感谢你!

javascript programming-languages static-analysis coffeescript

19
推荐指数
2
解决办法
3223
查看次数

CoffeeScript中的Node.js module.exports

我正在研究一个简单的例子; 我可以使用Javascript,但我的CoffeeScript版本有问题.

这是person.coffee:

module.exports = Person

class Person 
    constructor: (@name) ->

    talk: ->
        console.log "My name is #{@name}"
Run Code Online (Sandbox Code Playgroud)

这是index.coffee:

Person = require "./person"
emma = new Person "Emma"
emma.talk()
Run Code Online (Sandbox Code Playgroud)

我期望运行index.coffee并看到控制台输出"我的名字是艾玛".相反,我收到一个错误说TypeError:undefined in not a function.

node.js coffeescript

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

正确清理代码

我有以下两个编辑和新路线:

WZ.ExercisesNewRoute = Em.Route.extend
  model: ->
    WZ.Exercise.createRecord()
  deactivate: ->
    @_super.apply this, arguments
    @get('currentModel.transaction').rollback()

WZ.ExercisesEditRoute = Em.Route.extend
  model: (params) ->
    WZ.Exercise.find(params.exercise_id)
  serialize: (params, options) ->
    exercise_id: params.get('id')
  deactivate: ->
    @_super.apply this, arguments
    tx = @get('currentModel.transaction')
    tx.rollback() if tx
Run Code Online (Sandbox Code Playgroud)

我想知道在每次取消激活时应该使用正确的代码,以便在用户不保存,保存或其他任何情况下,存储处于正确的状态.

目前,如果我路由到编辑路线,然后直接到新路线而不保存,我收到以下错误:

未捕获错误:willSetProperty在状态rootState.deleted.saved中尝试处理事件.使用{reference:[object Object]调用,存储:,name:name}

coffeescript ember.js ember-data

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

如何让Chrome重新加载源地图?

我在Chrome Dev 27上,并在Dev Tools设置中选中了Disable cache.当我重新加载页面时,Chrome会正确地重新加载地图页面使用的所有资源,包括.js文件.但是,它不会自动重新加载相应的源映射 .map.监控Chrome我的应用之间的HTTP流量,在后续页面加载时,我没有看到Chrome对.map文件的任何请求.如何让Chrome重新加载源地图?

Chrome没有重新加载.map文件的问题是它也不会重新加载生成文件的文件.js,在我的情况下恰好是CoffeeScript文件(.coffee),这意味着在调试时,在Sources选项卡中我正在寻找在旧版本的.coffee文件中,即使新代码(来自.js)正在运行.

google-chrome coffeescript source-maps

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

为什么CoffeeScript使用%%代替模数而不是标准的javascript运算符%

关于运算符CoffeeScript文档中,它表示您可以使用%%真正的数学模,但没有解释为什么这与%JavaScript中的"模运算符"不同.

更进一步说它a %% b在CoffeeScript中相当于(a % b + b) % b用JavaScript 编写,但是对于大多数简单的情况,这似乎产生了相同的结果.

javascript operators modulo coffeescript

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

测试coffeescript中的类成员资格的最简单方法是什么?

我正在寻找相当于Ruby的"blah".is_a?(String)Objective-C[@"blah" isKindOfClass:[NSString class]]

coffeescript

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

在CoffeeScript中获取类类型

一旦它被实例化,我如何找到该对象的类?

class Cat
  constructor: (@name) ->

class Dog
  constructor: (@name) ->

cat = new Cat "Kitty"
dog = new Dog "Doggy"

if (cat == Cat)  <- I want to do something like this
Run Code Online (Sandbox Code Playgroud)

coffeescript

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

正确的时间使用coffeescript

所以基本上我有很多担心让我退回coffeescript:

  1. 我还不是js的专家,即使我已经使用它大约3年了,我仍然觉得我错过了一些重要的东西.由于它对我来说主要是一种支持性的技术,我从来没有时间深入了解js(我承认,这可能是一种错误的态度).

  2. 如果我开始使用coffeescript,我的知识将变得更糟

  3. 我不确定我是否真的可以信任coffescript,这意味着它编译的js代码

  4. 有时我不明白js代码coffeescript编译甚至更糟 - 为什么它编译这样.

我想知道你对以上几点的看法.关键的一点是:如何使用coffeescript影响你对js的了解?在切换到coffeescript之前,你认为完全理解js有多重要?

javascript ruby-on-rails coffeescript

18
推荐指数
2
解决办法
3321
查看次数

创建空字符串数组?

有没有一种简单的方法来在javascript中创建一个空字符串数组?目前我能想到的唯一方法是使用循环:

var empty = new Array(someLength);
for(var i=0;i<empty.length;i++){
    empty[i] = '';
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有一些方法可以使用常规javascript或coffeescript在一行中执行此操作.

javascript node.js coffeescript

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