是否有使用 TypeScript 的 React prop 类型的函数类型的最佳实践?
我认为这会起作用,但实际上它出错了:
type Props = {
onClick: Function
};
const Submit = ({ onClick }: Props) => {
return (
<button type="button" onClick={onClick}>
click me
</button>
);
Run Code Online (Sandbox Code Playgroud)
按照这个线程我让它工作了,但它似乎不必要地冗长:https : //github.com/Microsoft/TypeScript/issues/20007
type Props = {
onClick: (...args: any[]) => any;
};
const Submit = ({ onClick }: Props) => {
return (
<button type="button" onClick={onClick}>
click me
</button>
);
Run Code Online (Sandbox Code Playgroud) 我使用Azavea Numeric Scala库进行通用数学运算.但是,我不能将它们与Scala Collections API一起使用,因为它们需要一个scala Numeric,看起来好像两个Numerics是互斥的.有什么方法可以避免重新实现对Azavea Numeric的Scala Collections的所有数学运算,除了要求所有类型都有Numerics的上下文边界?
import Predef.{any2stringadd => _, _}
class Numeric {
def addOne[T: com.azavea.math.Numeric](x: T) {
import com.azavea.math.EasyImplicits._
val y = x + 1 // Compiles
val seq = Seq(x)
val z = seq.sum // Could not find implicit value for parameter num: Numeric[T]
}
}
Run Code Online (Sandbox Code Playgroud)
Azavea Numeric定义为
trait Numeric[@scala.specialized A] extends java.lang.Object with
com.azavea.math.ConvertableFrom[A] with com.azavea.math.ConvertableTo[A] with scala.ScalaObject {
def abs(a:A):A
...remaining methods redacted...
}
object Numeric {
implicit object IntIsNumeric extends IntIsNumeric
implicit …Run Code Online (Sandbox Code Playgroud) 我有一个方法,它采用带有隐式视图边界的类型参数.使用无效数据类型调用方法时,是否可以使用@implicitNotFound批注来提供更好的编译器错误?
该方法的文档是无用的,甚至源代码也无济于事,所有在线使用的例子都处于特征或类级别.
是否有一个ant任务(类似于ftp或scp任务)允许我将一组文件复制到windows(smb)共享?
编辑:我必须使用jcifs创建一个任务.如果有人需要它,这里是代码.
取决于jcifs和apache ioutils.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import jcifs.smb.SmbFile;
import org.apache.commons.io.IOUtils;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.Copy;
public class SmbCopyTask extends Task
{
private File src;
private String tgt;
public void execute() throws BuildException
{
try
{
recursiveCopy(src);
}
catch (Exception e)
{
throw new BuildException(e);
}
}
public void recursiveCopy(File fileToCopy) throws IOException
{
String relativePath = src.toURI().relativize(fileToCopy.toURI()).getPath();
SmbFile smbFile = new SmbFile(tgt, relativePath);
if(!smbFile.exists())
{
smbFile.createNewFile();
}
if(!fileToCopy.isDirectory())
{
System.out.println(String.format("copying %s to %s", new Object[]{fileToCopy, …Run Code Online (Sandbox Code Playgroud) 我有一个需要 ClassTag 的抽象路径依赖类型。有没有比手动为每个具体派生类手动拉取隐式更好的方法?
trait Foo {
type A // : ClassTag // Need the ClassTag of A later
val ctA: ClassTag[A] // But can't put a context-bound on the type
}
class IntFoo extends Foo {
type A = Int
val ctA = implicitly[ClassTag[Int]]
}
class StringFoo extends Foo {
type A = String
val ctA = implicitly[ClassTag[String]]
}
Run Code Online (Sandbox Code Playgroud) SettingKey.~= 方法用于从 libraryDependencies 中排除依赖项(参见play 2.3.8 sbt ,不包括 logback),但试图找出它的作用很难,因为:
任何人都可以阐明这是什么?
在尝试克隆可变集合时,我最初的方法是在mutable.Cloneable特征上使用clone()方法.但是,这遵循java.Object.clone实现,该实现创建引用的副本,而不是深层副本.从测试中,我可以确认可变.{Queue,Seq,Set}所有浅拷贝.
我已经采用原始的新xxx(copy:_*)方法来创建一个深层副本,但我的问题是mutable.Cloneable特性的目的是什么,如果它没有实现?