如何在'k'和number上使用'k'和抽象类型的number?我希望有一个类型别名T,这样T<'k', number>就会给出该类型。
请考虑以下示例:
function f(x: { 'k': number, [s: string]: any }) {} // ok
type T_no_params = { 'k': number, [s: string]: any }; // ok
type T_
我希望能够在一个结构的两个字段之间强制执行相似,但在一个映射或切片中也有几个这样的结构。
下面是我的问题的一个简化示例:
package main
type foo[T any] struct {
f func() T
v T
}
type bar struct {
x []*foo[any]
}
func baz[T any](b *bar, f func() T) {
b.x = append(b.x, &foo[any]{f: f})
}
func main() {
var b bar
baz(&b, func()
我注意到Tuple[Any]不能满足Type[Any]的要求。
在python3.8中...
var: Type[Any] = Tuple[Any]
当我对此运行mypy时,我得到
Incompatible types in assignment (expression has type "object", variable has type "Type[Any]")
有人知道我可能做错了什么吗?我的最终目标是能够将var赋值给Tuple[Any, ...]。
谢谢!
我已经获得了使用Eval和Execute基于字符串构建变量的代码。但是无论出于什么原因,当我试图将变量设置为一个变量时,Execute都会将它保留为空。但是,如果我手动将其设置为字符串,则可以正常工作
这不起作用,会给出一个空框:
For j = 0 To 2
name = "alias_" & j
val = "test"
Execute(Eval("name") + "=" + val)
msgbox(Execute(Eval("name"))
Next
这确实有效,在m
在Swift中,我可以声明一个Any类型的常量,并将一个String放入其中。
let any: Any = "hello world"
好的。另一方面,我不能将nil值放入any,因为它不是可选的。
let any: Any = nil
error: nil cannot initialize specified type 'Any' (aka 'protocol<>')
let any: Any = nil
^
太完美了。但是为什么编译器允许我写下面的代码呢?
let couldBeNil: Stri
我有这样一个java接口
public interface MyInterface<T> {
public <V extends T> V get(String key, Bundle bundle);
}
请注意该方法的<V extends T>类型参数。
然后我有一个类MyFoo implements MyInterface
class MyFoo implements MyInterface<Object> { // Object because can be any type
@Override public <V>
type User = {
name: string;
};
const flag: any = false;
let list1: User;
list1 = flag ? flag : 1; // hope error 为什么list1可以是1,为什么不是一个错误:类型“1”不能赋值给类型“User”
这与我在Redux Saga生成器上遇到的一个问题有关。他们对call的定义之一是(不包括实现): // this is taken from redux saga and cannot be changed
function call<Fn extends (...args: any[]) => any>(
fn: Fn,
...args: Parameters<Fn>
): CallEffect<SagaReturnType<Fn>> { ... } 我试着这样叫它: function test<F extends (a
代码片段 fun main() {
val myClass : AbsClass<Any> = MyClass()
// Error - type mismatch
val myClass : AbsClass<*> = MyClass()
// Not Error, but parameter of 'foo' is 'Nothing'
val myClass : AbsClass<Any> = MyClass() as AbsClass<Any>
//
在某些参数类型K存在的上下文中,很明显,K extends string | number | symbol是行
let val: K extends K ? string : any = ""
给出一个编译器错误:
TS2322:类型' string‘不能指定键入’:any‘。
我原以为这是编译的,因为K extends K应该计算为true。
通常,true ? A : B不是总是被推断为A吗?这里有什么问题?
目前,我们正在将代码库迁移到typescript,我们有很多地方可以使用任何类型的代码。因此,我尝试强制显式设置变量作为任何变量。
下面是示例代码片段。
const a: string = 'h';
const b: any = 4;
const message = a || b;
// Here I would like to get warning that I am assigning any to the message,
// so I would have to write const message: any = a || b;
function say(x
我想创建一个包装任意函数的函数,但对参数和结果保持相同的类型。例如,这将包装一个函数--但是类型将变成any // Note that the returned wrappedFn takes the same arguments as fn, and returns
// a value of the same type as the one returned by fn.
function myWrapper(fn: (...args: any[]) => any): (...args: any[]) => any {
return function wrappedFn(
let a : any;
let m = new Map<any, any>(Object.keys(a).map(prop => ([prop.x, prop.y])));
使用esnext目标产生错误
文件:'file:///c%3A/GIT/MainLine/members/src/tasks/list/decTest2.ts‘严重性:“错误”消息:“类型'any’的参数不能分配给'Iterable<any,any>‘类型的参数。属性'Symbol.iterator‘的类型是不兼容的。类型'() => Iter
你好,我正在尝试用typescript实现活动例程和存储库逻辑。但是在处理泛型类型时遇到了一些问题。 我有一个抽象的BaseModel,它有一个返回自身和子类型的create方法。为此,我说它将返回BaseModel。在具有从BaseModel扩展的泛型类型的存储库中,我包装了我的模型方法,并使用泛型类型作为返回值。但当我这样做时,它会给我以下的误差。 'BaseModel' is not assignable to type 'T'. 'BaseModel' is assignable to the constraint of type
很抱歉,我不能将标题(或问题)表述得比这更具信息性,因为我不知道这里发生了什么。为什么这段代码不能编译:
class Foo
class Bar[+R <: Foo] { def bar = "bar" }
class Bak(val b: Bar[_])
val bak = new Bak(new Bar[Foo])
bak.b.bar // fine
println(bak.b) // fine
bak.b // oops!
^^^ type arguments [Any] do not conform to class Bar's type
我搜索了很多,发现在kotlin,我们不能同时拥有多个类型的变量。就像在打字稿里一样
var name: Int | String = 5
下面是问题所在,我必须使用相同的代码两次,这确实不是一个好的编程实践,因为我必须重复它。
class Keyboard(private val context: Context, private val form: SomeBinding) {
//some common functions
fun startKeyboard() {
theNumericPad()
dot()
我有一段Elm代码(为了长寿,省略了getProjectView函数):
type Model = Maybe List Project
model : Model
model = Nothing
getView : Model -> Html any
getView model =
case model of
Just projects ->
ul [] (List.map getProjectView projects)
Nothing -> p [] [ text "Still loading..." ]
当我试图编