我正在尝试利用最近添加的对TypeScript编译器中的子类型输入和@ types/react的支持,但很难.我正在使用TypeScript版本2.3.4.
说我有这样的代码:
interface TabbedViewProps {children?: Tab[]}
export class TabbedView extends React.Component<TabbedViewProps, undefined> {
render(): JSX.Element {
return <div>TabbedView</div>;
}
}
interface TabProps {name: string}
export class Tab extends React.Component<TabProps, undefined> {
render(): JSX.Element {
return <div>Tab</div>
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用这些组件时:
return <TabbedView>
<Tab name="Creatures">
<div>Creatures!</div>
</Tab>
<Tab name="Combat">
<div>Combat!</div>
</Tab>
</TabbedView>;
Run Code Online (Sandbox Code Playgroud)
我收到如下错误:
ERROR in ./src/typescript/PlayerView.tsx
(27,12): error TS2322: Type '{ children: Element[]; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<TabbedView> & Readonly<{ children?: ReactNode; }> …Run Code Online (Sandbox Code Playgroud) 所以我正在努力做一些小说(我想),但是我对Haskell类型级编程没有足够的经验来自己解决这个问题.
我有一个免费的monad描述了一些要执行的效果(AST,如果这就是你滚动的方式),我想根据预期效果的某些描述来解释它.
到目前为止这是我的代码::
{-# LANGUAGE DeriveFunctor, FlexibleInstances, GADTs, FlexibleContexts #-}
import Control.Monad.Free -- from package 'free'
data DSL next
= Prompt String (String -> next)
| Display String next
deriving (Show, Functor)
prompt p = liftF (Prompt p id)
display o = liftF (Display o ())
-- |Just to make sure my stuff works interactively
runIO :: (Free DSL a) -> IO a
runIO (Free (Prompt p cont)) = do
putStr p
line <- getLine
runIO (cont line)
runIO (Free …Run Code Online (Sandbox Code Playgroud) 我正在使用无限循环调试一些代码,但这很困难,因为我无法获取任何日志消息.这是一个简化的案例:
import Debug exposing (log)
f x =
let _ = log "Hello, world!" ()
in f x
Run Code Online (Sandbox Code Playgroud)
如果我在我的Elm REPL中运行f ()它,它会无限循环并且永远不会"Hello, world!"像我期望的那样打印出来.
我查看了Debug.log(跟随它Native.Debug.log)的实现,但它似乎只是调用process.stdout.write或console.log同步,所以我很惊讶我没有看到任何输出.
我正在使用mapDynamicFrame的方法(或等效的Map.apply方法)。我注意到传递给这些函数的函数中的任何错误都会被默默忽略并导致返回的 DynamicFrame 为空。
假设我有一个这样的工作脚本:
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.transforms import *
glueContext = GlueContext(SparkContext.getOrCreate())
dyF = glueContext.create_dynamic_frame.from_catalog(database="radixdemo", table_name="census_csv")
def my_mapper(rec):
import logging
logging.error("[RADIX] An error-log from in the mapper!")
print "[RADIX] from in the mapper!"
raise Exception("[RADIX] A bug!")
dyF = dyF.map(my_mapper, 'my_mapper')
print "Count: ", dyF.count()
dyF.printSchema()
dyF.toDF().show()
Run Code Online (Sandbox Code Playgroud)
如果我在我的 Glue Dev Endpoint 中运行这个脚本gluepython,我会得到如下输出:
[glue@ip-172-31-83-196 ~]$ gluepython gluejob.py
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found …Run Code Online (Sandbox Code Playgroud) apache-spark ×1
aws-glue ×1
elm ×1
free-monad ×1
haskell ×1
interpreter ×1
pyspark ×1
reactjs ×1
types ×1
typescript ×1