小编ben*_*inz的帖子

TypeScript:在数字上使用parseInt()时出错

JavaScript函数parseInt可用于强制将给定参数转换为整数,无论​​该参数是字符串,浮点数,数字等.

在JavaScript中,没有错误parseInt(1.2)会产生1,但是,在TypeScript中,它会在编译期间抛出一个错误:

error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了什么,或者是TypeScript的预期行为?

javascript typescript

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

在字符串上调用str()的成本?

str在已经是字符串的对象上调用函数的成本(如果有的话)是多少?这里的用例是规范化不同类型的对象数组并将它们转换为字符串,天真地可以这样实现:

def arr_2_strarr(arr):
    return [str(val) for val in arr]
Run Code Online (Sandbox Code Playgroud)

但如果str()导致过多的开销,并且我arr主要包含字符串,我可以考虑使用:

def arr_2_strarr2(arr):
    return [str(val) if not isinstance(val, basestring) else val for val in arr]
Run Code Online (Sandbox Code Playgroud)

有什么建议?

python string

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

TypeScript:如何在编译时声明固定大小的数组以进行类型检查

更新:这些检查用于编译时,而不是在运行时.在我的例子中,失败的案例都是在编译时捕获的,我期待其他应该失败的情况下的类似行为.

假设我正在编写一个类似于表的类,我希望该类的所有成员都是相同长度的数组,如:

class MyClass {
  tableHead:  string[3]; // expect to be a 3 element array of strings
  tableCells: number[3]; // expect to be a 3 element array of numbers
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我发现的最接近的解决方案是:

class MyClass {
  tableHead:  [string, string, string];
  tableCells: [number, number, number];
}

let bar = new MyClass();
bar.tableHead = ['a', 'b', 'c']; // pass
bar.tableHead = ['a', 'b'];      // fail
bar.tableHead = ['a', 'b', 1];   // fail

// BUT these also pass, …
Run Code Online (Sandbox Code Playgroud)

javascript typechecking typescript

9
推荐指数
3
解决办法
9666
查看次数

TypeScript错误TS5023:未知的编译器选项'strict'

tsconfig.json文件中使用"strict"选项时,我收到错误:

error TS5023: Unknown compiler option 'strict'
Run Code Online (Sandbox Code Playgroud)

但官方文档中明确允许使用此编译器选项:

参考:https://www.typescriptlang.org/docs/handbook/compiler-options.html

还有我的Visual Studio代码编辑器.

有谁知道我做错了什么?这是我的tsconfig.json文件:

{
  "compilerOptions": {
    "strict": true,
    "sourceMap":  true
  }
}
Run Code Online (Sandbox Code Playgroud)

typescript

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

使用Flask蓝图解决此循环导入错误的正确方法是什么?

我的循环导入有问题,所以我将蓝图导入移到我的应用定义下面.但是,我仍然有导入错误.

Traceback (most recent call last):
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 2217, in <module>
    globals = debugger.run(setup['file'], None, None)
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 1643, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Users/benjamin/Documents/Projects/website/server/app/app.py", line 15, in <module>
    from views import site
  File "/Users/benjamin/Documents/Projects/website/server/app/views.py", line 2, in <module>
    from models import User
  File "/Users/benjamin/Documents/Projects/website/server/app/models.py", line 3, in <module>
    from database_setup import db
  File "/Users/benjamin/Documents/Projects/website/server/app/database_setup.py", line 1, in <module>
    from app import app
  File "/Users/benjamin/Documents/Projects/website/server/app/app.py", line 15, in <module>
    from views …
Run Code Online (Sandbox Code Playgroud)

python flask

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

如何使用SqlAlchemy_Utils ChoiceType设置默认值

我刚从NoSQL迁移到SQL,而且我对SqlAlchemy ORM很新.

在我的用例中,我需要模型中的一个字段才能存储给定的选择集:

# models.py
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.utils.types.choice import ChoiceType

Base = declarative_base()    

class User(Base):
    __tablename__ = 'user'
    USER_TYPES = [
       ('user', 'User'),
       ('admin', 'Admin User')
    ]

    id = Column(Integer(), primary_key=True)
    type = Column(ChoiceType(User_Types), default='user')
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的脚本时,我得到:

> SAWarning: Unicode column 'None' has non-unicode default value 'user' specified.
  self.default
Run Code Online (Sandbox Code Playgroud)

并且在我设置默认值并且不键入"ChoiceType"的其他字段上没有错误.

谁知道我做错了什么?

谢谢!

python sqlalchemy flask flask-sqlalchemy

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

使用编译器 API 进行类型推断

我正在尝试使用 TypeScript 的编译器 API 来执行非常基本的类型推断,但我无法从文档或谷歌搜索中找到任何有用的信息。

本质上,我想要一个函数inferType,它接受一个变量并返回它的推断定义:

let bar = [1, 2, 3];
let bar2 = 5;

function foo(a: number[], b: number) {
  return a[0] + b;
}

inferType(bar); // => "number[]"
inferType(bar2); // => "number"
inferType(foo); // "(number[], number) => number"
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以通过编译器 API 实现这一点吗?如果没有,无论如何我可以通过其他方式实现这一目标吗?

typescript typescript-compiler-api

7
推荐指数
2
解决办法
2099
查看次数

Chrome 扩展程序,如何在开发中忽略 node_modules 以加快加载速度

我正在构建一个 Chrome 扩展程序,并且依赖于一些 NPM 模块。虽然我确实有 webpack 来帮助打包生产环境的东西,但在开发过程中加载我解压的扩展程序时,Chrome 似乎会考虑整个目录,大致是340M! 这也使得调试和测试变得很困难,因为单击打开 Chrome 扩展弹出需要 3 到 5 秒。

我一直在谷歌搜索文件中是否有选项,manifest.json但没有任何帮助。我错过了一些明显的东西吗?

如果没有,推荐的工作流程是什么?我应该将所有内容输出到一个/dist文件夹中并将我的manifest.json文件放在那里吗?

google-chrome-extension

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

如何在mongoengine中"分组"

假设我的Schema看起来像这样:

class User(Document):
  username = StringField()
  password = StringField()
  category = StringField()
Run Code Online (Sandbox Code Playgroud)

想象一下,我们有这些现有的类别:"avengers", "justice-leaguers", "villains",我想执行一个"group by"查询,User.objects.all()以便我可以得到这样的东西:

[
 [<User: IronMan object>, <User: Thor object>, <User: Hulk object>], 
 [<User: Superman object>,<User: Batman object>], 
 [<User: Ultron object>, <User: Joker object>, <User: LexLuthor object>]
]
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

{
 "avengers": [<User: IronMan object>, <User: Thor object>, <User: Hulk object>], 
 "justice-leaguers": [<User: Superman object>,<User: Batman object>], 
 "villains": [<User: Ultron object>, <User: Joker object>, <User: LexLuthor object>]
}
Run Code Online (Sandbox Code Playgroud)

我查看了MongoEngine的文档,但还没有找到任何有用的信息.多谢你们!

mongodb pymongo mongoengine

6
推荐指数
2
解决办法
4422
查看次数

语义UI弹出位置很远

我正在尝试使用Semantic UI的弹出模块,它在我的项目上的定位方面从未正常工作,因为它在演示中.我尝试了几次黑客攻击(设置位置relative等),但没有运气; 这是一个小提琴:http: //jsfiddle.net/smt94eox/ 我打算在按钮的左上方显示弹出窗口,因为它在盘旋:

$('#smile').popup({
    inline: true,
    hoverable: true, 
    position: 'top left'
});
Run Code Online (Sandbox Code Playgroud)

但悬停时,弹出窗口显示在页面底部.有谁知道为什么以及如何解决这个问题?

css jquery semantic-ui

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