我正在Rails中构建一个React应用程序并想尝试react-redux.我注意到它没有提供CDN或凉亭包.
安装说明建议使用NPM,但这不是节点项目.我通过Rails资产管道,CDN或bower包处理所有当前资产(通过rails-assets)
我正在使用 Preact 编写一个简单的组件,它使用元素onChange的处理程序<input/>:
function Example(props: {}) {
return <input onChange={(e) => {
const { value } = e.currentTarget;
console.log(value);
}} />
}
Run Code Online (Sandbox Code Playgroud)
上面的代码会产生以下错误:
Property 'value' does not exist on type 'EventTarget'.ts(2339)
Run Code Online (Sandbox Code Playgroud)
最快的解决方法是进行类型转换:
const el = (e.currentTarget as HTMLInputElement).value;
Run Code Online (Sandbox Code Playgroud)
但我不想为这样的常见操作添加类型转换到应用程序。
在不使用类型转换或类型的情况下编写表单事件处理程序的正确方法是什么?any
环境信息:
"strict": true在 tsconfig.json 中preact@8.5.2我正在为使用WebRTC的库编写单元测试.
我的测试套件需要Chrome的权限几乎每个单元测试,这要求我手动点击每个测试的"允许"按钮.
是否有一个标志或设置我可以更改为始终允许全局媒体访问,以便不提示我的测试套件的权限?
我在Chrome中使用Jasmine测试运行器.
在某些情况下,提倡组合而不是继承.我在Ruby和Javascript社区中看到这种情况越来越多.
作文听起来很像多重继承.我甚至在一些Ruby实现中内部读过,模块组合是IS多重继承,具有较小的语法糖.
这是一回事吗?如果没有,它与多重继承有什么不同?
Blackbox是否有可能将WebPack包的某些部分置于Black,以便Chrome不显示Framework内部的堆栈跟踪?例如,在检查React应用程序上的错误时,我不关心框架内的堆栈跟踪条目,而只是想看到与我编写的代码相关的部分.
使用单个文件时可以使用"框架黑盒子",但我不知道如何使用WebPack包完成它.
我正在将项目从Babel转换为Typescript并收到以下编译器错误:
error TS1136: Property assignment expected.
Run Code Online (Sandbox Code Playgroud)
从代码看起来像这样:
var auth = {...this.props.auth};
Run Code Online (Sandbox Code Playgroud)
此代码以前在Babel下工作正常,但在尝试通过Typescript编译时会导致上述错误.在Typescript中对象解构是不同的吗?
我在生产中运行Dokku应用程序,需要知道服务器上运行的应用程序版本.
这可能与Dokku?
我使用了$ q(Angular.js)并经常在一个.then调用中返回promises .结果是下一个.then呼叫将等待先前的承诺完成.
我现在使用本机es6承诺尝试'promisify'基于回调的库,我无法这样做.
问题是.then链中的下一个值是一个promise对象,而不是该promise的已解析值.它.then在解析promise之前调用下一个值,只返回最后一个返回值.
无论如何都要等待先前的承诺解决?
例:
$.ajax({
url: "//localhost:3000/api/tokens",
type: "POST",
data: JSON.stringify({
user: {
email: 'admin@admin.com',
password: 'password123'
}
}),
contentType: "application/json"
})
.then(data => data.token.encoded) // OK
.then(token => Farmbot({ token: token })) // OK
.then(function(bot){ // OK
return new Promise(function(resolve, reject) {
bot.connect(function(){ resolve(bot); });
});
}, errorr)
.then(function(bot){ // NOT OK!
// passes in an unresolved promise object, which is useless.
//
bot; // => …Run Code Online (Sandbox Code Playgroud) 我有以下功能:
change(key: keyof McuParams, dispatch: Function) {
/** Body removed for brevity */
}
Run Code Online (Sandbox Code Playgroud)
当我调用函数时...
this.change(VARIABLE_FROM_MY_API, this.props.dispatch)
Run Code Online (Sandbox Code Playgroud)
...我(可以理解)收到以下错误:
Argument of type 'string' is not assignable to parameter of type '"foo" | "bar"'
这是有道理的,因为编译器无法知道我的 API 在编译时发送了什么。但是,有时可以使用用户定义的类型保护在运行时推断类型信息,并通过条件将该信息传递给编译器。
是否可以为keyof字符串类型编写用户定义的类型保护,例如keyOf foo何时foo仅定义为类型(而不是在数组中)?如果是这样,如何?
有时我需要处理键/值数据.
我不喜欢使用Arrays,因为它们的大小不受限制(很容易意外添加2个以上的项目,而且最后需要验证大小).此外,指数0和1成为神奇的数字,并在传达意义方面表现不佳("当我说0时,我的意思是head......").
哈希也不合适,因为可能会意外添加额外的条目.
我编写了以下类来解决问题:
class Pair
attr_accessor :head, :tail
def initialize(h, t)
@head, @tail = h, t
end
end
Run Code Online (Sandbox Code Playgroud)
它工作得很好并且解决了这个问题,但我很想知道:Ruby标准库是否已经提供了这样的类?
javascript ×5
typescript ×3
ruby ×2
angularjs ×1
dokku ×1
ecmascript-6 ×1
ecmascript-7 ×1
html5 ×1
inheritance ×1
jasmine ×1
jquery ×1
oop ×1
preact ×1
promise ×1
reactjs ×1
redux ×1
unit-testing ×1
webpack ×1
webrtc ×1